﻿


''' <summary>
''' Exposes picture information in the picture data store
''' </summary>
''' <remarks></remarks>
Public Class Picture

    ''' <summary>
    '''  Gets or sets the ID for the picture
    ''' </summary>
    Private _Id As String
    ''' <summary>
    '''  Gets or sets the ID for the picture
    ''' </summary>
    Public Property Id() As String
        Get
            Return _Id
        End Get
        Set(ByVal value As String)
            _Id = value
        End Set
    End Property



    ''' <summary>
    ''' Gets or sets the title for the picture
    ''' </summary>
    ''' <remarks></remarks>
    Private _Title As String
    ''' <summary>
    ''' Gets or sets the title for the picture
    ''' </summary>
    Public Property Title() As String
        Get
            Return _Title
        End Get
        Set(ByVal value As String)
            _Title = value
        End Set
    End Property




    ''' <summary>
    '''  Gets or sets the rating
    ''' </summary>
    ''' <remarks>Rating ranges from 0 (unrated) to 5</remarks>
    Private _rating As Integer
    ''' <summary>
    '''  Gets or sets the rating
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks>Rating ranges from 0 (unrated) to 5</remarks>
    Public Property Rating() As Integer
        Get
            Return _rating
        End Get
        Set(ByVal value As Integer)
            If value < 0 OrElse value > 5 Then Throw New ArgumentOutOfRangeException("value")
            _rating = value
        End Set
    End Property



    '''<summary>
    ''' Gets the rating in a 5-stars text format
    ''' </summary>
    Private _ratingText As String
    ''' <summary>
    ''' Gets the rating in a 5-stars text format
    ''' </summary>
    ''' <remarks><see cref=" http://msdn2.microsoft.com/en-us/library/aa966528.aspx "/></remarks>
    Public ReadOnly Property RatingText() As Integer
        Get
            Return _ratingText
        End Get
    End Property


  

    ''' <summary>
    ''' Gets or sets the picture's file name
    ''' </summary>
    ''' <remarks></remarks>
    Private _fileName As String
    ''' <summary>
    ''' Gets or sets the picture's file name
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property FileName() As String
        Get
            Return _fileName
        End Get
        Set(ByVal value As String)
            _fileName = value
        End Set
    End Property




    ''' <summary>
    ''' Gets or sets the picture's file
    ''' </summary>
    ''' <remarks></remarks>
    Private _fileExtension As String
    ''' <summary>
    ''' Gets or sets the picture's file
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property FileExtension() As String
        Get
            Return _fileExtension
        End Get
        Set(ByVal value As String)
            _fileExtension = value
        End Set
    End Property


    ''' <summary>
    ''' Gets or sets the url for the picture
    ''' </summary>
    ''' <remarks></remarks>
    Private _ItemUrl As Uri
    ''' <summary>
    ''' Gets or sets the url for the picture
    ''' </summary>
    Public Property ItemUrl() As Uri
        Get
            Return _ItemUrl
        End Get
        Set(ByVal value As Uri)
            _ItemUrl = value
        End Set
    End Property


    '    /// <summary>
    '    /// Gets or sets the picture's size 
    '    /// </summary>
    '    public int Size { get; set; }

    ''' <summary>
    ''' Gets or sets the picture's size 
    ''' </summary>
    ''' <remarks></remarks>
    Private _size As Integer
    ''' <summary>
    ''' Gets or sets the picture's size 
    ''' </summary>
    Public Property Size() As Integer
        Get
            Return _size
        End Get
        Set(ByVal value As Integer)
            _size = value
        End Set
    End Property



    ''' <summary>
    ''' Gets or sets the MIME type for the picture
    ''' </summary>
    ''' <remarks></remarks>
    Private _MimeType As String
    ''' <summary>
    ''' Gets or sets the MIME type for the picture
    ''' </summary>
    Public Property MimeType() As String
        Get
            Return _MimeType
        End Get
        Set(ByVal value As String)
            _MimeType = value
        End Set
    End Property


    '    /// <summary>
    '    /// Gets or sets the time the picture was created
    '    /// </summary>
    '    public DateTime DateCreated { get; set; }

    ''' <summary>
    ''' Gets or sets the time the picture was created
    ''' </summary>
    ''' <remarks></remarks>
    Private _DateCreated As DateTimeOffset
    ''' <summary>
    ''' Gets or sets the time the picture was created
    ''' </summary>
    Public Property DateCreated() As DateTimeOffset
        Get
            Return _DateCreated
        End Get
        Set(ByVal value As DateTimeOffset)
            _DateCreated = value
        End Set
    End Property


    '    /// <summary>
    '    /// Gets or sets the last time the picture was modified
    '    /// </summary>
    '    public DateTime DateModified { get; set; }

    ''' <summary>
    ''' Gets or sets the last time the picture was modified
    ''' </summary>
    ''' <remarks></remarks>
    Private _DateModified As DateTimeOffset
    ''' <summary>
    ''' Gets or sets the last time the picture was modified
    ''' </summary>
    Public Property DateModified() As DateTimeOffset
        Get
            Return _DateModified
        End Get
        Set(ByVal value As DateTimeOffset)
            _DateModified = value
        End Set
    End Property


    '    /// <summary>
    '    /// Gets or sets the comment for the picture
    '    /// </summary>
    '    public string Comment { get; set; }

    ''' <summary>
    ''' Gets or sets the comment for the picture
    ''' </summary>
    ''' <remarks></remarks>
    Private _Comment As String
    ''' <summary>
    ''' Gets or sets the comment for the picture
    ''' </summary>
    Public Property Comment() As String
        Get
            Return _Comment
        End Get
        Set(ByVal value As String)
            _Comment = value
        End Set
    End Property


    ''' <summary>
    ''' Gets or sets a list of tags associated with the picture
    ''' </summary>
    ''' <remarks></remarks>
    Protected _tags As String()

    ''' <summary>
    ''' Gets or sets a list of tags associated with the picture
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Tags() As String()
        Get
            If _tags Is Nothing Then _tags = New String() {}
            Return _tags
        End Get
        Set(ByVal value As String())
            _tags = value
        End Set
    End Property

    

End Class
